package com.bh.order.vo;

import com.bh.common.annotation.Excel;
import com.bh.common.enums.InventoryType;
import com.bh.common.core.domain.DictLabelVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author slx
 * @date 2024/03/27
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class JcLedVO extends DictLabelVo {
    private Long id;
    private Long orderId;
    private Long jcOrderId;
    private Long jcOrganizationId;
    private Long jcFormOrganizationId;

    @Excel(name = "出发网点")
    private String fromOrganizationName;
    private Long jcStartZoneId;
    private Long jcToOrganizationId;
    /** 目的运点ID */
    private Long jcEndZoneId;

    @Excel(name = "到达网点")
    private String toOrganizationName;

    @Excel(name = "分段订单号")
    private String code;

    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date time;

    @Excel(name = "发货单号")
    private String relateBill1;

    @Excel(name = "客户单号")
    private String relateBill2;

    /** 客户类型  0:零散，1:合同 */
    @Excel(name = "客户类型", readConverterExp = "0=零散,1=合同")
    private String customerType;

    @Excel(name = "客户名称")
    private String customerName;
    /**
     * 客户
     */
    @ApiModelProperty("客户")
    private Long jcCustomerId;
    /** 费用类型 */
    @Excel(name = "费用类型")
    private Long jcFeeTypeId;

    @Excel(name = "运单号")
    private String shipmentCode;

    @Excel(name = "司机姓名")
    private String driverName;

    @Excel(name = "司机电话")
    private String driverIphone;

    @Excel(name =  "发货单位")
    @ApiModelProperty("发货单位")
    private String senderPartyName;

    @Excel(name = "发货人")
    @ApiModelProperty("发货人")
    private String senderPerson;

    @Excel(name = "发货人电话")
    private String senderPhone;

    @Excel(name = "收货单位")
    @ApiModelProperty("收货单位")
    private String receivingPartyName;

    @Excel(name = "收货人")
    @ApiModelProperty("收货人")
    private String receivingPerson;

    @Excel(name = "收货人电话")
    private String receivingPhone;

    @Excel(name = "收货地址", width = 50)
    private String receivingAddress;

    private Integer status;
    /**
     * 状态多选
     */
    private String statuses;
    private Integer handoverType; //交付方式
    private Integer customerIsExceed;
    private String salePerson;
    private String transportPro;

    @Excel(name = "是否回单", readConverterExp = "0=否,1=是")
    private Integer isBack;

    @Excel(name = "回单数量")
    private Integer backNumber;

    @Excel(name = "货品名称")
    private String productName;

    @Excel(name = "货品数量")
    private String number;

    @Excel(name = "货品重量")
    private double weight;

    @Excel(name = "货品体积")
    private double volume;

    @Excel(name = "签收人")
    @ApiModelProperty("签收人")
    private String qsPerson;
    private String qsImgs;

    @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("签收时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date qsTime;

    @Excel(name = "签收备注")
    private String description;
    private String createName;
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    private String modifyName;
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;
    private Integer type;

    @ApiModelProperty("库存类型")
    private InventoryType inventoryType;
    Map<String, String> params = new HashMap<>();


    // CommIsNot 1、0
    private Integer isSign;
}
